Sys.setenv(JAVA_HOME='/usr/local/software/spack/spack-0.11.2/opt/spack/linux-rhel7-x86_64/gcc-5.4.0/jdk-8u141-b15-p4aaoptkqukgdix6dh5ey236kllhluvr/jre') #Ubuntu cluster
#Sys.setenv(JAVA_HOME= "/usr/lib/jvm/java-11-openjdk-amd64")


## Load packages
library(nlrx)
#library(tidyverse) 
library(dplyr)
library(rcartocolor)
library(ggthemes) 
library(feather)

# Office
netlogopath <- file.path("/usr/local/Cluster-Apps/netlogo/6.0.4")
outpath <- file.path("/home/hs621/github/chapter5")



## Step1: Create a nl obejct:
nl <- nl(nlversion = "6.0.4",
         nlpath = netlogopath,
         modelpath = file.path(outpath, "CBD_Cars_June15.nlogo"),
         jvmmem = 1024)

## Step2: Add Experiment
nl@experiment <- experiment(expname = "nlrx_spatial",
                            outpath = outpath,
                            repetition = 1,      
                            tickmetrics = "true",
                            idsetup = "setup",   
                            idgo = "go",
                            #runtime = 600,
                            #evalticks=seq(1,600, by = 1),
                            runtime = 42780,
                            evalticks=seq(1,42780, by = 1),
                            metrics = c("mean-pm10",
                                        "Jongno_p",
                                        "Jung_p",
                                        "JongnoKerb_p",
                                        "Samil_p",
                                        "Sejong_p",
                                        "Pirum_p",
                                        "Yulgok_p"),
                            variables = list("cars_afternoon" = list(values = c(50, 100))),
                            constants = list("health_loss" = 0.01,
                                             'emission-factor' = 5,
                                             "cars_morning" = 30,
                                             #'cars_afternoon' = 5,
                                             'cars_evening' = 2,
                                             'no-of-r-cars' = 50,
                                             'speed-variation' = 0.52)  
)

# Evaluate if variables and constants are valid:
eval_variables_constants(nl)

#nl@simdesign <- simdesign_ff(nl = nl, nseeds = 1)
#nl@simdesign <- simdesign_simple(nl = nl, nseeds = 1)
nl@simdesign <- simdesign_distinct(nl=nl, nseeds=1)


# Step4: Run simulations:
init <- Sys.time()
results <- run_nl_all(nl = nl)
Sys.time() - init

gc()


# Step5
# Attach results to nl object:
#setsim(nl, "simoutput") <- results

# Report spatial data:
#results_unnest <- unnest_simoutput(nl)

# Step6
#results_unnest_patches <- results_unnest %>%
#  dplyr::filter(agent=="patches") %>%
#  dplyr::select(`[step]`, pxcor, pycor, pcolor, pm10) %>% 
#  dplyr::mutate(pm10 = replace(pm10, pm10==0,NA))
#dplyr::filter(`[step]` %in% seq(1,80,10))


#rm(nl)
#write_csv(results_unnest_patches, paste("patch_", results$`random-seed`[1], ".csv", sep = ""))
write_feather(results, paste("CBD_Afternoon_", results$`random-seed`[1], ".feather", sep = ""))



